package com.amado.course48Generics;

import java.util.List;

/**
 * Java 泛型 Java 泛型（generics）是 JDK 5(1.5) 中引入的一个新特性,
 * 泛型提供了编译时类型安全检测机制，该机制允许程序员在编译时检测到非法的类型。
 * 
 * @author Administrator
 *
 */
public class GenericsTest1 {
	// 无界无返回值,为什么要带<T>区分它是泛型方法
	public static <T> void printArray(T[] inputArray) {
		// 输出数组元素
		for (T element : inputArray) {
			System.out.printf("%s ", element);
		}
		System.out.println();
	}

	// 无界无返回值,为什么要带<T>区分它是泛型方法
	public static <T> void printArray(List<T> inputArray) {
		// 输出数组元素
		for (T element : inputArray) {
			System.out.printf("%s ", element);
		}
		System.out.println();
	}

	// 无界有返回值
	public static <E> E getMaxElement(E[] inputArray) {
		return inputArray[0];
	}

	public static void main(String[] args) {
		String[] stringArray = new String[] { "abc", "dd" };
		Integer[] intArray = new Integer[] { 1, 2 };
		printArray(stringArray);
		printArray(intArray);
		System.out.println(getMaxElement(stringArray));
		System.out.println(getMaxElement(intArray));
	}
}
